package com.luofan.service;

import com.github.pagehelper.PageInfo;
import com.luofan.common.result.ResultCodeEnum;
import com.luofan.entity.dto.ArchiveQueryDTO;
import com.luofan.entity.po.Archive;
import com.baomidou.mybatisplus.extension.service.IService;
import com.luofan.entity.vo.ArchiveVO;
import com.luofan.entity.vo.StatisticsVO;

/**
 * <p>
 * 档案表 服务类
 * </p>
 *
 * @author 
 * @since 2025-03-26
 */
public interface ArchiveService extends IService<Archive> {

    //教师上传档案
    ResultCodeEnum saveArchiveByCollectId(Archive archive);

    //教师修改档案(已通过审核不能修改)
    ResultCodeEnum updateArchiveById(Archive archive);

    //根据档案收集任务id和用户id获取档案信息
    ArchiveVO getArchiveByCollectIdAndUserId(Long collectId, Long userId);

    //教研室主任 审核档案(审核通过需要评分)
    ResultCodeEnum checkArchive(Archive archive);

    //根据条件 分页获取档案信息
    PageInfo<ArchiveVO> listArchiveByCondition(ArchiveQueryDTO archiveQueryDTO);

    //根据教师id 获取档案的平均提交所需时间，逾期提交率，平均质量评分
    StatisticsVO statisticsByUserId(Long userId);

    //根据档案收集任务id 获取档案的平均提交所需时间，逾期提交率，平均质量评分
    StatisticsVO statisticsByCollectId(Long collectId);

    //根据教研室id和学期id 获取档案的平均提交所需时间，逾期提交率，平均质量评分
    StatisticsVO statisticsBySectionIdAndTermId(Long sectionId, Long termId);

    //根据学期id 获取档案的平均提交所需时间，逾期提交率，平均质量评分
    StatisticsVO statisticsByTermId(Long termId);
}
